1. Field of the Invention
The invention relates to data processing systems and more particularly to an apparatus for issuing multiple instructions from sveral sources and in an order that ensures that the sources and destinations of the instructions do not collide with one another.
2. Description of the Related Art
Users of modern computers are demanding greater speed in the form of increased throughput (number of completed tasks per uinit of time) and increased speed (reduced time it takes to complete a task). The Reduced Instruction Set Computer (RISC) architecuture is one approach system designers have taken to achieve this. While there is no standard definition for the term Reduced Instruction Set Computer (RISC) as opposed to the usual computer architecture which can be called Complex Instruction Set Computer (CISC), there are some generally accepted characteristics of a RISC machine. Generally a RISC machine can issue and execute an instruction per clock. In a RISC machine only a very few instructions can access memory so most instructions use on-chip registers. So, a further RISC characterstic is the provision of a large number of registers on chip. In a RISC machine the user can specify in a single instruction two sources and a destination.
Having to fetch large numbers of instructions from off chip memory reduces bus bandwidth. When issuing multiple instructions from several sources on a machine bus, sometimes the destination operands of the instructions collide with one another resulting in a scoreboard hit condition. When this occurs in the prior art apparatus, the instruction is canceled and an additional fetch is required in order to reissue the instruction on the machine bus after a scoreboard hit is removed.
It is an object of the invention to provide an apparatus for issuing, on a machine bus, multiple instructions from several sources, for detecting if destination operands of the instructions collide with one another and for reissuing an instruction on the machine bus immediately after a collision condition related to that instruction is removed.
Briefly, the above objects are accomplished in accordance with the invention by providing instruction sequencer with a microcode translation ROM (112) for providing initial instructions in microcode flows and a mousetrap multiplexer (104) having a first input, a second input and an output. The first input of the mousetrap multiplexer (104) is connected to an instruction bus (98) and the the second input of the mousetrap multiplexer (104) is connected to the microcode translation ROM (112). The output of the mousetrap multiplexer (104) is connected to the machine bus (110). The mousetrap multiplexer (104) includes means for selecting at its inputs from one of either the instruction bus (98), or microcode translation ROM (112), an operand and an opcode field and for driving the selected operand and opcode field onto the machine bus (110).
The invention has the advantage of providing a superscaler architecture in that the machine can issue and execute more than one instruction per clock.
The invention has the advantage that since the microinstructions of the microcode are virtually identical to the RISC macroinstructions, a permanent cache of routines is stored on-chip that would be in most RISC machines have to come from off-chip.
The invention has the advantage that it is possible to issue two instructions per clock, which eliminates the bus bandwidth problems that would exist if all that code had to be fetched from off-chip.